HAL I3C IRQ handler and callbacks functions migration

This section provides information about the HAL I3C control functions migration.

HAL I3C callbacks functions

Description

HAL1

HAL2

I3C controller transmit complete callback

HAL_I3C_CtrlTxCpltCallback(I3C_HandleTypeDef *hi3c);
HAL_I3C_CTRL_TransferCpltCallback(hal_i3c_handle_t *hi3c);

I3C controller receive complete callback

HAL_I3C_CtrlRxCpltCallback(I3C_HandleTypeDef *hi3c);
HAL_I3C_CTRL_TransferCpltCallback(hal_i3c_handle_t *hi3c);

I3C controller multiple transfer complete callback

HAL_I3C_CtrlMultipleXferCpltCallback(I3C_HandleTypeDef *hi3c);
HAL_I3C_CTRL_TransferCpltCallback(hal_i3c_handle_t *hi3c);

I3C controller dynamic address complete callback

HAL_I3C_CtrlDAACpltCallback(I3C_HandleTypeDef *hi3c);
HAL_I3C_CTRL_DAACpltCallback(hal_i3c_handle_t *hi3c);

I3C target request dynamic address callback

HAL_I3C_TgtReqDynamicAddrCallback(I3C_HandleTypeDef *hi3c, uint64_t targetPayload);
HAL_I3C_CTRL_TgtReqDynAddrCallback(hal_i3c_handle_t *hi3c, uint64_t target_payload);

I3C target transmit complete callback

HAL_I3C_TgtTxCpltCallback(I3C_HandleTypeDef *hi3c);
HAL_I3C_TGT_TxCpltCallback(hal_i3c_handle_t *hi3c);

I3C target receive complete callback

HAL_I3C_TgtRxCpltCallback(I3C_HandleTypeDef *hi3c);
HAL_I3C_TGT_RxCpltCallback(hal_i3c_handle_t *hi3c);

I3C target hot join callback

HAL_I3C_TgtHotJoinCallback(I3C_HandleTypeDef *hi3c, uint8_t dynamicAddress);
HAL_I3C_TGT_HotJoinCallback(hal_i3c_handle_t *hi3c, uint8_t dynamic_address);

I3C notify callback

HAL_I3C_NotifyCallback(I3C_HandleTypeDef *hi3c, uint32_t eventId);
HAL_I3C_NotifyCallback(hal_i3c_handle_t *hi3c, uint32_t notify_id);

I3C Abort complete callback

HAL_I3C_AbortCpltCallback(I3C_HandleTypeDef *hi3c);
HAL_I3C_AbortCpltCallback(hal_i3c_handle_t *hi3c);

I3C Error callback

HAL_I3C_ErrorCallback(I3C_HandleTypeDef *hi3c);
HAL_I3C_ErrorCallback(hal_i3c_handle_t *hi3c);

HAL I3C callbacks register and unregister functions

Title

HAL1

HAL2

Register controller transmit complete callback

HAL_I3C_RegisterCallback(&i3c_handle,
                         HAL_I3C_CTRL_TX_COMPLETE_CB_ID,
                         USER_I3C_CtrlTxCpltCallback);
HAL_I3C_CTRL_RegisterTransferCpltCallback(&i2s_handle,
                               USER_I3C_CTRL_XferCpltCallback);

Register controller receive complete callback

HAL_I3C_RegisterCallback(&i3s_handle,
                         HAL_I3C_CTRL_RX_COMPLETE_CB_ID,
                         USER_I3C_CtrlRxCpltCallback);
HAL_I3C_CTRL_RegisterTransferCpltCallback(&i3s_handle,
                               USER_I3C_CTRL_XferCpltCallback);

Register controller multiple transfer complete callback

HAL_I3C_RegisterCallback(&i3s_handle,
                         HAL_I3C_CTRL_MULTIPLE_XFER_COMPLETE_CB_ID,
                         USER_I3C_CtrlMultipleXferCpltCallback);
HAL_I3C_CTRL_RegisterTransferCpltCallback(&i3s_handle,
                                      USER_I3C_CTRL_XferCpltCallback);

Register target request dynamic address callback

HAL_I3C_RegisterTgtReqDynamicAddrCallback(&i3s_handle,
                         USER_I3C_TgtReqDynamicAddrCallback);
HAL_I3C_CTRL_RegisterTgtReqDynAddrCallback(&i3s_handle,
                               USER_I3C_CTRL_TgtReqDynAddrCallback);

Register controller dynamic address complete callback

HAL_I3C_RegisterCallback(&i3s_handle,
                         HAL_I3C_CTRL_DAA_COMPLETE_CB_ID,
                         USER_I3C_CtrlDAACpltCallback);
HAL_I3C_CTRL_RegisterDAACpltCallback(&i3s_handle,
                               USER_I3C_CTRL_DAACpltCallback);

Register target transmit complete callback

HAL_I3C_RegisterCallback(&i3s_handle,
                         HAL_I3C_TGT_TX_COMPLETE_CB_ID,
                         USER_I3C_TgtTxCpltCallback);
HAL_I3C_TGT_RegisterTxCpltCallback(&i3s_handle,
                               USER_I3C_TGT_TxCpltCallback);

Register target receive complete callback

HAL_I3C_RegisterCallback(&i3s_handle,
                         HAL_I3C_TGT_RX_COMPLETE_CB_ID,
                         USER_I3C_TgtRxCpltCallback);
HAL_I3C_TGT_RegisterRxCpltCallback(&i3s_handle,
                                   USER_I3C_TGT_RxCpltCallback);

Register notify callback

HAL_I3C_RegisterNotifyCallback(&i3s_handle,
                               USER_I3C_NotifyCallback);
HAL_I3C_RegisterNotifyCallback(&i3s_handle,
                               USER_I3C_NotifyCallback);

Register target hot join callback

HAL_I3C_RegisterTgtHotJoinCallback(&i3s_handle,
                                    USER_I3C_TgtHotJoinCallback);
HAL_I3C_TGT_RegisterHotJoinCallback(&i3s_handle,
                                    USER_I3C_TGT_HotJoinCallback);

Unregister target hot join callback

HAL_I3C_UnRegisterCallback(&i3s_handle,
                           HAL_I3C_TGT_HOTJOIN_CB_ID);
HAL_I3C_TGT_RegisterHotJoinCallback(&i3s_handle,
                                    HAL_I3C_TGT_HotJoinCallback);

Unregister notify callback

HAL_I3C_UnRegisterCallback(&i3s_handle,
                           HAL_I3C_NOTIFY_CB_ID);
HAL_I3C_RegisterNotifyCallback(&i3s_handle,
                               HAL_I3C_NotifyCallback);

Unregister error callback

HAL_I3C_UnRegisterCallback(&i3s_handle,
                           HAL_I3C_ERROR_CB_ID);
HAL_I3C_RegisterErrorCallback(&i3s_handle,
                              HAL_I3C_ErrorCallback);

Unregister abort complete callback

HAL_I3C_UnRegisterCallback(&i3s_handle,
                         HAL_I3C_ABORT_CB_ID);
HAL_I3C_RegisterAbortCpltCallback(&i3s_handle,
                                  HAL_I3C_AbortCpltCallback);

Unregister target receive complete callback

HAL_I3C_UnRegisterCallback(&i3s_handle,
                           HAL_I3C_TGT_RX_COMPLETE_CB_ID);
HAL_I3C_TGT_RegisterRxCpltCallback(&i3s_handle,
                                   HAL_I3C_TGT_RxCpltCallback);

Related concept: Individual callback registration APIs replace global register and unregister functions


HAL I3C IRQ handler

Note

The function HAL_I3C_EV_IRQHandler() remain unchanged.

HAL1

HAL2

HAL_I3C_ER_IRQHandler()

HAL_I3C_ERR_IRQHandler()

HAL_I3C_EV_IRQHandler()

HAL_I3C_EV_IRQHandler()